#include <iostream>
using namespace std;
const int N = 100003; // 大于10e5的最小质数

// h[N]哈希表的槽
// e[i]当前i存储的数
// ne[i]i的下一个结点
// idx当前所指的数
int h[N], e[N], ne[N], idx;

void insert(int x)
{
    int k = (x % N + N) % N; // k哈希函数处理
    e[idx] = x;              // 当前链表中存放x
    ne[idx] = h[k];          // 链表的next指向k的槽（即原来连着槽的第一个数）
    h[k] = idx++;            // h[k]指向当前的数idx，idx再指向下一位
}

bool find(int x)
{
    int k = (x % N + N) % N;               // k哈希函数处理
    for (int i = h[k]; i != -1; i = ne[i]) // 遍历输入树的哈希链表
        if (e[i] == x)                     // 如果存在就正确输出
            return true;

    return false;
}
int main()
{
    int n;
    scanf("%d", &n);
    memset(h, -1, sizeof(h)); // 先将哈希表中的所有链表指向-1

    while (n--)
    {
        char op[2];
        int x;
        scanf("%s%d", op, &x);

        if (*op == 'I')
            insert(x); // 插入哈希表
        else
        {
            if (find(x)) // 查找哈希表
                puts("Yes");
            else
                puts("No");
        }
    }
    return 0;
}